package com.springboot.bookmanegersystem.service;

import com.springboot.bookmanegersystem.model.BookInfo;
import com.springboot.bookmanegersystem.model.req.BookRequestParam;
import com.springboot.bookmanegersystem.model.resp.Result;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description :
 * User: jiume
 * Date: 2025-05-11
 * Time: 8:49
 */
public interface BookService {
    /**
     * 获取 前三本 图书
     * @return
     */
    Result getBookListDefault();

    /**
     * 根据 当前页 和 页面展示的图书数 来获取当前页面图书信息
     * @param bookRequestParam 当前页 和 页面展示的图书数
     * @return 图书列表信息
     */
    Result getBookList(BookRequestParam bookRequestParam);

    /**
     * 获取数据库中总的图书数量
     * @return 总图书数
     */
    Result getBookCount();

    /**
     * 删除图书信息(通过id)
     * @param bookId 被删除的图书id
     * @return 删除是否成功
     */
    Result deleteBook(Integer bookId);

    /**
     * 更新图书信息(通过id)
     * @param bookInfo 需要更新的图书信息（更新结果）
     * @return 是否更新成功
     */
    Result updateBook(BookInfo bookInfo);

    /**
     * 根据图书id获取图书信息
     * @param bookId 需要获取图书的id
     * @return 是否获取成功
     */
    Result getBookById(Integer bookId);

    /**
     * 新增图书
     * @param bookInfo 新增的图书信息
     * @return 是否新增成功
     */
    Result addBook(BookInfo bookInfo);

    /**
     * 批量删除图书
     * @param bookIdList 批量删除的图书id
     * @return 是否删除成功
     */
    Result batchDeleteBook(List<Integer> bookIdList);
}
